#ifndef _PEGODA_H
#define _PEGODA_H
/*
 *  (C) 2005 by Harald Welte <laforge@gnumonks.org>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 
 *  as published by the Free Software Foundation
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 */

#define USB_VENDOR_PHILIPS	0x0742
#define USB_DEVICE_PEGODA	0xff01

/* header of a pegoda usb command packet */
struct pegoda_cmd_hdr {
	u_int8_t seq;
	u_int8_t cmd;
	u_int16_t len;
};

enum {
	PEGODA_CMD_WRITE_RC			= 0x01,
	PEGODA_CMD_READ_RC			= 0x02,
	PEGODA_CMD_EXCHANGE_BYTESTREAM		= 0x03,
	PEGODA_CMD_WRITE_MULTIPLE		= 0x04,
	PEGODA_CMD_READ_MULTIPLE		= 0x05,
	PEGODA_CMD_READ_WORD			= 0x06,

	
	PEGODA_CMD_PCD_CONFIG			= 0x10,
	PEGODA_CMD_PICC_REQUEST			= 0x11,
	PEGODA_CMD_PICC_ANTICOLL		= 0x12,
	PEGODA_CMD_PICC_SELECT			= 0x13,
	PEGODA_CMD_PICC_AUTH			= 0x14,
	PEGODA_CMD_PICC_AUTH_E2			= 0x15,
	PEGODA_CMD_LOAD_KEY_E2			= 0x17,
	PEGODA_CMD_PICC_AUTH_KEY		= 0x18,
	PEGODA_CMD_PICC_READ			= 0x19,
	PEGODA_CMD_PICC_WRITE			= 0x1a,
	PEGODA_CMD_PICC_VALUE			= 0x1b,
	PEGODA_CMD_PICC_VALUE_DEBIT		= 0x1c,
	PEGODA_CMD_PICC_HALT			= 0x1d,
	PEGODA_CMD_PICC_WRITE4			= 0x1e,
	PEGODA_CMD_PICC_COMMON_WRITE		= 0x1f,

	PEGODA_CMD_PCD_RF_RESET			= 0x20,
	PEGODA_CMD_PCD_RESET			= 0x21,
	PEGODA_CMD_PCD_GET_SNR			= 0x22,
	PEGODA_CMD_PCD_READ_E2			= 0x23,
	PEGODA_CMD_PCD_SET_TMO			= 0x27,
	PEGODA_CMD_PICC_COMMON_READ		= 0x28,
	PEGODA_CMD_PCD_INITIALIZE_E2		= 0x29,
	PEGODA_CMD_ACTIVE_ANTENNA_MASTER	= 0x2a,
	PEGODA_CMD_ACTIVE_ANTENNA_SLAVE		= 0x2b,

	PEGODA_CMD_HOST_TRANS_TMR_START		= 0x30,
	PEGODA_CMD_HOST_TRANS_TMR_STOP		= 0x31,
	PEGODA_CMD_HOST_GET_EXEC_TIME		= 0x32,

	PEGODA_CMD_PICC_COMMON_REQUEST		= 0x40,
	PEGODA_CMD_PICC_CASC_ANTICOLL		= 0x41,
	PEGODA_CMD_PICC_CASC_SELECT		= 0x42,
	PEGODA_CMD_PICC_ACTIVATE_IDLE		= 0x43,
	PEGODA_CMD_PICC_ACTIVATE_WAKEUP		= 0x44,
	PEGODA_CMD_PCD_SET_DEFAULT_ATTRIB	= 0x45,
	PEGODA_CMD_PCD_SET_ATTRIB		= 0x46,
	PEGODA_CMD_PCD_GET_ATTRIB		= 0x47,
	PEGODA_CMD_PICC_EXCHANGE_BLOCK		= 0x48,
	PEGODA_CMD_PICC_ACTIVATE_IDLE_LOOP	= 0x49,
	PEGODA_CMD_PICC_ACTTIVATION		= 0x4a,
	PEGODA_CMD_PCD_ENABLE_HIGH_BAUD_RATES	= 0x4b,

	PEGODA_CMD_SWITCH_LED			= 0x60,
	PEGODA_CMD_TEST_FLASH_NR		= 0x61,
	PEGODA_CMD_START_DOWNLOAD		= 0x62,
	PEGODA_CMD_GET_FW_VERSION		= 0x63,
	PEGODA_CMD_GET_RIC_VERSION		= 0x64,
	PEGODA_CMD_ENABLE_DEBUG_PINS		= 0x65,
	PEGODA_CMD_MIRROR_DATA			= 0x66,
	PEGODA_CMD_TEST_CMDS			= 0x67,

	PEGODA_CMD_TEST_PCD			= 0x70,
	PEGODA_CMD_TEST_PICC			= 0x71,
	PEGODA_CMD_GET_ONLINE_STATUS		= 0x72,

	PEGODA_CMD_I1_PCD_CONFIG		= 0x80,
	PEGODA_CMD_I1_INIT_STD_MODE		= 0x81,
	PEGODA_CMD_I1_CALC_TSE_HASH		= 0x82,
	PEGODA_CMD_I1_INIT_FAST_MODE		= 0x83,
	PEGODA_CMD_I1_OUTPUT_READ		= 0x85,
	PEGODA_CMD_I1_OUTPUT_ANTICOL_SELECT	= 0x86,
	PEGODA_CMD_I1_OUTPUT_WRITE		= 0x87,
	PEGODA_CMD_I1_OUTPUT_HALT		= 0x88,
	PEGODA_CMD_I1_OUTPUT_EAS		= 0x89,
	PEGODA_CMD_I1_RESET_QUIET		= 0x8a,
	PEGODA_CMD_I1_PCD_RF_RESET		= 0x8b,
	PEGODA_CMD_I1_SET_BIT_PHASE		= 0x8c,

	PEGODA_CMD_I2_INIT_STD_MODE		= 0x90,
	PEGODA_CMD_I2_INIT_FAST_MODE		= 0x91,
	PEGODA_CMD_15693_READ_SM		= 0x92,
	PEGODA_CMD_15693_INVENTORY		= 0x93,
	PEGODA_CMD_15693_WRITE_SM		= 0x94,
	PEGODA_CMD_15693_STAY_QUIET		= 0x95,
	PEGODA_CMD_15693_LOCK_BLOCK		= 0x96,
	PEGODA_CMD_15693_SELECT			= 0x97,
	PEGODA_CMD_15693_RESET_TO_READY		= 0x98,
	PEGODA_CMD_15693_WRITE_AFI		= 0x99,
	PEGODA_CMD_15693_LOCK_AFI		= 0x9a,
	PEGODA_CMD_15693_WRITE_DSFID		= 0x9b,
	PEGODA_CMD_15693_LOCK_DSFID		= 0x9c,
	PEGODA_CMD_15693_GET_SYSTEM_INFO	= 0x9d,
	PEGODA_CMD_15693_GET_MULTI_BLOCK_SEC	= 0x9e,
	PEGODA_CMD_15693_INVENTORY_READ		= 0x9f,
	PEGODA_CMD_15693_FAST_INVENTORY_READ	= 0xa0,
	PEGODA_CMD_15693_SET_EAS		= 0xa1,
	PEGODA_CMD_15693_RESET_EAS		= 0xa2,
	PEGODA_CMD_15693_LOCK_EAS		= 0xa3,
	PEGODA_CMD_15693_EAS_ALARM		= 0xa4,

	PEGODA_CMD_PC_PCD_CONFIG		= 0xb0,
	PEGODA_CMD_PC_BEGIN_ROUND		= 0xb1,
	PEGODA_CMD_PC_WRITE			= 0xb3,

	PEGODA_CMD_UID_PCD_CONFIG		= 0xb8,
	PEGODA_CMD_UID_BEGIN_ROUND		= 0xb9,
	PEGODA_CMD_UID_WRITE			= 0xba,
	PEGODA_CMD_UID_DESTROY			= 0xbb,
};

#endif
